package com.gonsin.gmessage.example.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


/**
 * @author fzy
 * @description: 10000N对象
 * @date 2023/4/21 16:59
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class S10000NStatusDto {

    /**
     * 模式，0：主服务器模式 1：扩展服务器 2：备份服务器
     */
    private int system_mode;

    /**
     * 发言模式
     */
    private int dis_mode;

    /**
     * 最大发言人数
     */
    private int dis_max;

    /**
     * 最大翻译通道
     */
    private int tag_max;

    /**
     * 系统锁定标志 ,(0;试用，1：解锁，2：锁定)  ，ID = 2(LCD管理程序）时返回
     */
    private int lock;

    /**
     * 系统语言，ID = 2(LCD管理程序）时返回
     */
    private int server_language;

    /**
     * 系统试用时间，ID = 2(LCD管理程序）时返回
     */
    private int try_time;

    /**
     * 声控时间
     */
    private int voice_time;

    /**
     * 表决状态  state = 2 的时候有效
     */
    private VoteStatus vote_status;

    /**
     * 报到状态
     */
    private RegStatus reg_status;

    private Double test;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    static class VoteStatus {

        /**
         * 表决类型，相关查表决类型表
         */
        private String type;

        /**
         * 表决议题名称，表决状态才返回
         */
        private String name;

        /**
         * 表决选项数, 表决状态才返回
         */
        private Integer optionsCount;

        /**
         * 表决最大可选数, 表决状态才返回
         */
        private Integer maxSelect;

        /**
         * 表决选项名称，字符串数组, 表决状态才返回
         */
        private String[] options;

        /**
         * 表决人数, 表决状态才返回
         */
        private Long voteExpect;

        /**
         * 已表决人数, 表决状态才返回
         */
        private Long votedNum;

        /**
         * 第一次表决有效，0：第一次有效，1：最后一次有效，表决状态才返回
         */
        private String firstOrLast;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    static class RegStatus {

        /**
         * 报到模式，报到状态才返回
         */
        private String mode;

        /**
         * 报到应到人数，报到状态才返回
         */
        private Long expect;

        /**
         * 报到已到人数，报到状态才返回
         */
        private Long arrive;
    }
}